home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 2002-10-03 | 156.1 KB | 3,167 lines
iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) NNNNAAAAMMMMEEEE iiiillllIIIImmmmaaaaggggeeee - base class for the ImageVision Library toolkit IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM ilLink HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE #include <il/ilImage.h> CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN ilImage is the base class for the ImageVision Library (IL) toolkit. All IL image objects are derived from ilImage either directly or indirectly. The ilImage base class abstracts the general concept of an image by defining variables and functions common to all images. It defines image parameters (e.g. size, data type), and provides access functions to query and set them. It also provides functions to access image data. ilImage is derived from ilLink so that images can be chained together, which allows the output of one image operation to become the input to another. ilImage thus defines a common Application Program Interface (API). This means that, for example, image data can be obtained from any image object by calling ggggeeeettttTTTTiiiilllleeee(). UUUUssssiiiinnnngggg iiiillllIIIImmmmaaaaggggeeee ilImage is intended to be used as a base class for deriving new types of images. Because most of the image data access virtuals return the status ilUNSUPPORTED, it is not useful to directly construct an ilImage object. However, a pointer to an ilImage can be declared to reference an image of unknown derivation. The ilImage class provides protected and public member functions. The protected functions provide convenient services to derived classes, (particularly for initializing and resetting an image's attributes) while the public functions form the API. QQQQuuuueeeerrrryyyyiiiinnnngggg aaaannnndddd SSSSeeeettttttttiiiinnnngggg IIIImmmmaaaaggggeeee AAAAttttttttrrrriiiibbbbuuuutttteeeessss The size of an image in the _x, _y, _z and _c dimensions can be retrieved using the function, ggggeeeettttSSSSiiiizzzzeeee(). In a typical 2-D image, z is 1 and the number of channels (c) per pixel is 3 (red, green and blue, for example). The image size is stored in a data object called iflSize. The size of the image can be set using the function, sssseeeettttSSSSiiiizzzzeeee(). The data type of the pixel channels can be retrieved using the function, ggggeeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(). It returns an enumerated type called _i_f_l_D_a_t_a_T_y_p_e, which has members _i_f_l_C_h_a_r, _i_f_l_U_C_h_a_r, _i_f_l_F_l_o_a_t, and so forth. The data type can be set by passing an iflDataType to the member function, sssseeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(). The pixel channel order can be queried and set using ggggeeeettttOOOOrrrrddddeeeerrrr() and sssseeeettttOOOOrrrrddddeeeerrrr(), respectively. This information is indicated with the enumerated type, _i_f_l_O_r_d_e_r. _i_f_l_O_r_d_e_r has members _i_f_l_I_n_t_e_r_l_e_a_v_e_d, PPPPaaaaggggeeee 1111 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) _i_f_l_S_e_q_u_e_n_t_i_a_l and _i_f_l_S_e_p_a_r_a_t_e, which indicate how the pixel components are stored. The orientation of an image can be queried and set using ggggeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn() and sssseeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn() respectively. The orientation of an image is specified using the enumerated type, _i_f_l_O_r_i_e_n_t_a_t_i_o_n. An orientation of _i_f_l_L_o_w_e_r_L_e_f_t_O_r_i_g_i_n, for example, means that the origin of the image is displayed in the lower left corner of the window. The color model of an image can be queried and set using ggggeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll() and sssseeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll() functions, respectively. The color model can be one of the enumerated iflColorModel types. A color map can also be associated with an ilImage. The color map can be queried and set using the ggggeeeettttCCCCoooolllloooorrrrmmmmaaaapppp() and sssseeeettttCCCCoooolllloooorrrrmmmmaaaapppp() functions, respectively. The color map is defined by using an iflColormap object. In general, for each image attribute there are access functions to set or get the associated member variables in class ilImage. AAAAcccccccceeeessssssssiiiinnnngggg IIIImmmmaaaaggggeeee DDDDaaaattttaaaa Image data can be accessed as pixels or as a rectangular region of arbitrary size called a tile. Both 2-D and 3-D tile access functions are provided. The virtual access functions present a queued request model, which allows an application to issue non-blocking requests for image I/O and later inquire the status and/or wait for the operation to complete. The queued model also provides derived classes with the "hooks" needed to automatically distribute operations across multiple processors. These queued functions are distinguished by the prefix 'q' on the function name. For convenience, there are access functions which do wait for their operation to complete, hiding the details of the queued model. There are several different functions to read image data, all based on qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(). Similarly, there are several different functions to write image data based on qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(). Two fast-paths called qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() and qqqqCCCCooooppppyyyyTTTTiiiilllleeee3333DDDD() are available for copying a tile from another ilImage. When calling the base functions listed above, the caller must specify the origin (x, y, z) and size (nx, ny, nz) of the desired tile. For 2-D operations, z is set to 0 and nz is set to 1. For pixel operations, nx, ny and nz are set to 1. An object called iflConfig, is used to specify the configuration (that is, data type, order, number of channels and so forth) of the desired tile. If required, the image data is converted to a specified configuration while getting a tile, or converted from a specified configuration to that of the image while setting a tile. CCCChhhhaaaaiiiinnnniiiinnnngggg IIIImmmmaaaaggggeeeessss PPPPaaaaggggeeee 2222 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) Images can be chained together, allowing the output from one image operation to become the input to another image operation without an intermediate buffer. Each image can have multiple parents (inputs) and multiple children (outputs). In addition to the functions inherited from _i_l_L_i_n_k, several functions such as sssseeeettttIIIInnnnppppuuuutttt(), aaaaddddddddIIIInnnnppppuuuutttt() and rrrreeeemmmmoooovvvveeeeIIIInnnnppppuuuutttt() are also provided to manage the input list. Inputs are usually added to an image in its constructor, although the input list can be manipulated after the image has been created. The power of chaining is fully realized with image operators (see the ilOpImg man page), which can be chained together to perform complex image processing operations. Chaining also allows a single image to be an input to multiple output operators. DDDDeeeerrrriiiivvvviiiinnnngggg NNNNeeeewwww CCCCllllaaaasssssssseeeessss ffffrrrroooommmm iiiillllIIIImmmmaaaaggggeeee Most new image classes should derive from ilMemCacheImg, ilOpImg, ilPolyadicImg, or a derivative (see the relevant man page). Some special cases may require deriving directly from ilImage. When a new class is derived from ilImage, it should redefine some of the inherited virtual functions. It must define at least one of qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(). The virtual function qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() should also be defined to provide a fast-path for copying a tile of image data from one ilImage to another; the standard version stages the copy through a temporary buffer, halving the potential performance. qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(((()))) Retrieves the specified tile of data in the given configuration from the image's input source. qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(((()))) Stores the specified tile of data in the given configuration to the image's output destination. qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg(((()))) Copies the specified tile of data from another ilImage to this image. qqqqFFFFiiiillllllllTTTTiiiilllleeee3333DDDD(((()))) Fills a tile of the image with a constant pixel value. qqqqFFFFiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB(((()))) Also fills a tile, with the fill value specified as a red, green, blue triplet. In derived classes of ilImage, image attributes can be set using any of the access functions after the creation of the image. When image attributes are changed, some parameters that depend on these attributes may have to be recomputed, typically in a reset operation. ilImage uses the ilLink flags and functions to manage and query the attributes' states and provides a default implementation for the ilLink virtual function, rrrreeeesssseeeetttt(((()))). If a derived class must be notified when the image attributes change, it will need to re-define the rrrreeeesssseeeetttt() virtual; for proper operation, the derived reset must call the base class reset. Operator images (derived from ilOpImg) cannot re-define reset; they can define a PPPPaaaaggggeeee 3333 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) new rrrreeeesssseeeettttOOOOpppp() instead. For more information on operator images and resetOp, see the man page for ilOpImg. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrr ilImage() ilImage(iflSize &sz) MMMMaaaannnniiiippppuuuullllaaaattttiiiinnnngggg iiiimmmmaaaaggggeeee iiiinnnnppppuuuuttttssss int getNumInputs() void setNumInputs(int num) _p_r_o_t_e_c_t_e_d ilStatus setInput(ilImage* inimg, int idx = 0) ilStatus addInput(ilImage* inimg) ilImage* getInput(int idx = 0) ilStatus removeInput(int idx = 0) ilImage* getDirectInput(int idx = 0) SSSSttttoooorrrriiiinnnngggg aaaannnndddd rrrreeeettttrrrriiiieeeevvvviiiinnnngggg 3333DDDD iiiimmmmaaaaggggeeee ddddaaaattttaaaa ilStatus getSubTile3D(int x, int y, int z, int nx, int ny, int nz, void* data, int dx, int dy, int dz, int dnx, int dny, int dnz, const ilConfig* config=NULL) virtual ilStatus qGetSubTile3D(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, void*& data, int dx, int dy, int dz, int dnx, int dny, int dnz, const ilConfig* config=NULL, ilMpManager** pMgr=NULL) ilStatus setSubTile3D(int x, int y, int z, int nx, int ny, int nz, const void* data, int dx, int dy, int dz, int dnx, int dny, int dnz, const ilConfig* config=NULL) virtual ilStatus qSetSubTile3D(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, const void* data, int dx, int dy, int dz, int dnx, int dny, int dnz, const ilConfig* config=NULL, ilMpManager** pMgr=NULL) PPPPaaaaggggeeee 4444 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ilStatus copyTileCfg(int x, int y, int z, int nx, int ny, int nz, ilImage* other, int ox, int oy, int oz, const ilConfig* config=NULL) virtual ilStatus qCopyTileCfg(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, ilImage* other, int ox, int oy, int oz, const ilConfig* config=NULL, ilMpManager** pMgr=NULL) ilStatus fillTile3D(int x, int y, int z, int nx, int ny, int nz, const void* data, const ilConfig* config=NULL, const iflTile2Dint* fillMask=NULL) virtual ilStatus qFillTile3D(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, const void* data, const ilConfig* config=NULL, const iflTile3Dint* fillMask=NULL, ilMpManager** pMgr=NULL) ilStatus fillTileRGB(int x, int y, int z, int nx, int ny, int nz, float red, float green, float blue, const iflTile3Dint* fillMask=NULL, iflOrientation orientation=iflOrientation(0)); virtual ilStatus qFillTileRGB(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, float red, float green, float blue, const iflTile3Dint* fillMask=NULL, iflOrientation orientation=iflOrientation(0), ilMpManager** pMgr=NULL) ilStatus copyTile3D(int x, int y, int z, int nx, int ny, int nz, ilImage* other, int ox, int oy, int oz, int* chanList=NULL) ilStatus copy(ilImage* from) ilStatus getTile3D(int x, int y, int z, int nx, int ny, int nz, void* data, const ilConfig* config=NULL) ilStatus qGetTile3D(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, void*& data, const ilConfig* config=NULL, ilMpManager** pMgr=NULL) ilStatus setTile3D(int x, int y, int z, int nx, int ny, int nz, const void* data, const ilConfig* config=NULL) ilStatus getPixel3D(int x, int y, int z, iflPixel& pix) ilStatus setPixel3D(int x, int y, int z, iflPixel& pix) PPPPaaaaggggeeee 5555 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) SSSSttttoooorrrriiiinnnngggg aaaannnndddd rrrreeeettttrrrriiiieeeevvvviiiinnnngggg 2222----DDDD iiiimmmmaaaaggggeeee ddddaaaattttaaaa ilStatus getTile(int x, int y, int nx, int ny, void* data, const ilConfig* config=NULL) ilStatus setTile(int x, int y, int nx, int ny, const void* data, const ilConfig* config=NULL) ilStatus getSubTile(int x, int y, int nx, int ny, void* data, int dx, int dy, int dnx, int dny, const ilConfig* config=NULL) ilStatus setSubTile(int x, int y, int nx, int ny, const void* data, int dx, int dy, int dnx, int dny, const ilConfig* config=NULL) ilStatus copyTile(int x, int y, int nx, int ny, ilImage* other, int ox, int oy, int* chanList=NULL) ilStatus fillTile(int x, int y, int nx, int ny, const void* data, const ilConfig* config=NULL, const iflTile2Dint* fillMask=NULL) ilStatus getPixel(int x, int y, iflPixel& pix) ilStatus setPixel(int x, int y, iflPixel& pix) DDDDaaaattttaaaa aaaacccccccceeeessssssss ssssuuuuppppppppoooorrrrtttt ilStatus clipTile(int &x, int &y, int &z, int &nx, int &ny, int &nz, int includeBorder=FALSE) ilStatus clipTile(iflTile3Dint& t, int includeBorder=FALSE) ilStatus clipTile(float &x, float &y, float &z, float &nx, float &ny, float &nz, int includeBorder=FALSE) ilStatus clipTile(iflTile3Dfloat& t, int includeBorder=FALSE) ilStatus configureRetainedCache(const iflTile3Dint& tile, int c = 0, int nc = -1, int* chans = NULL, float minCacheBudget = .05, float maxCacheBudget = 1, size_t* retainedFileSize = NULL) ilImageTile* getInputTileRequirement(const iflTile3Dint& tile, int c, int nc, int* chans, int& pageSetCount) void setTileRequirementFunction(ilTileRequirementFuncPtr func) _p_r_o_t_e_c_t_e_d void getStrides(int& xs, int& ys, int& zs, int& cs, int nx=0, int ny=0, int nz=0, int nc=0, iflOrder ord=iflOrder(0)) int outOfBound(int x, int y) _p_r_o_t_e_c_t_e_d int outOfBound(int x, int y, int z) _p_r_o_t_e_c_t_e_d PPPPaaaaggggeeee 6666 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) QQQQuuuueeeerrrryyyyiiiinnnngggg aaaabbbboooouuuutttt iiiimmmmaaaaggggeeee pppprrrrooooppppeeeerrrrttttiiiieeeessss void getDimensions(iflSize& size) int getXsize() int getYsize() int getZsize() int getCsize() int getNumChans() int getWidth() int getHeight() void getSize(iflSize& size) const iflSize& getSize() _p_r_o_t_e_c_t_e_d iflDataType getDataType() iflOrder getOrder() iflOrientation getOrientation() void getConfig(ilConfig* cfg) iflColorModel getColorModel() iflCompression getCompression() const iflPixel& pixel getFill() const void* getFillData() double getFillValue(int c=0) ilStatus getColormap(iflColormap& cmap) const iflColormap* getColormap() int getMaxColormapLevels() size_t getPageSize() size_t getPageSize(int& nx, int& ny) size_t getPageSize(int& nx, int& ny, int& nz, int& nc) size_t getPageSize(iflSize& pageSize) size_t getPageSize(iflSize& pageSize, iflOrientation ori) size_t getPageDimensions() int getPageSizeX() int getPageSizeY() int getPageSizeZ() int getPageSizeC() int getPageSizePix() int getPageSizeVal() int isPartialPage(int x, int y, int z, int c) _p_r_o_t_e_c_t_e_d int isValidPage(int x, int y, int z, int c) _p_r_o_t_e_c_t_e_d virtual int hasPages() void getPageDelta(int& nx, int& ny, int& nz, int& nc) void getPageDelta(iflXYZCint& delta) void getPageBorder(iflXYZint& border) const iflXYZint& getPageBorder() int getPageBorderX() int getPageBorderY() int getPageBorderZ() void getPageCounts(int& nx, int& ny, int& nz, int& nc) void getPageIndices(int x, int y, int z, int c, int& ix, int& iy, int& iz, int& ic) ilStatus getPageOrigin(int x, int y, int z, int c, int& px, int& py, int& pz, int& pc) ilStatus getPageOrigin(const iflXYZCint& pos, iflXYZCint& org) PPPPaaaaggggeeee 7777 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) int getPageOriginX(int x) int getPageOriginY(int y) int getPageOriginZ(int z) int getPageOriginC(int c) int getPriority() int hasPageBorder() int isIntegral() int isSigned() int isWritable() SSSSeeeettttttttiiiinnnngggg iiiimmmmaaaaggggeeee pppprrrrooooppppeeeerrrrttttiiiieeeessss ilStatus setColorModel(iflColorModel c) void initColorModel(int noAlpha=FALSE) _p_r_o_t_e_c_t_e_d ilStatus setOrientation(iflOrientation spc) ilStatus setDataType(iflDataType dtype) ilStatus setCompression(iflCompression c) ilStatus setFill(const iflPixel& pixel) ilStatus setFillValue(double val, int c=0) ilStatus setFillRGB(float red, float green, float blue) ilStatus setSize(const iflSize& size) ilStatus setSize(int nx, int ny) ilStatus setXsize(int nx) ilStatus setYsize(int ny) ilStatus setZsize(int nc) ilStatus setCsize(int nc) ilStatus setNumChans(int nc) ilStatus setOrder(iflOrder order) void initPageSize(const iflSize& pageSize) _p_r_o_t_e_c_t_e_d ilStatus setPageSize(const iflSize& pageSize) ilStatus setPageSize(int nx, int ny, int nz, int nc) ilStatus setPageSize(int nx, int ny) ilStatus setPageSizeZ(int nz) ilStatus setPageSizeC(int nc) ilStatus setPageBorder(const iflXYZint& border) ilStatus setPageBorder(int nx, int ny, int nz=0) ilStatus setColormap(const iflColormap& cmap) void setMaxColormapLevels(int maxLevels) void setPriority(int pri) void setWritable(int enable=TRUE) _p_r_o_t_e_c_t_e_d int inherit(int typeMask=0, int orderMask=0, int allowDiffColorModels=FALSE)_p_r_o_t_e_c_t_e_d void checkValidType(int typeMask, int wantSigned=FALSE) _p_r_o_t_e_c_t_e_d void checkValidOrder(int orderMask) _p_r_o_t_e_c_t_e_d QQQQuuuueeeerrrryyyyiiiinnnngggg aaaabbbboooouuuutttt mmmmiiiinnnniiiimmmmuuuummmm aaaannnndddd mmmmaaaaxxxxiiiimmmmuuuummmm ppppiiiixxxxeeeellll double getMinValue() double getMaxValue() PPPPaaaaggggeeee 8888 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) SSSSeeeettttttttiiiinnnngggg mmmmiiiinnnniiiimmmmuuuummmm aaaannnndddd mmmmaaaaxxxxiiiimmmmuuuummmm ppppiiiixxxxeeeellll vvvvaaaalllluuuueeeessss void initMinMax(int force=FALSE) _p_r_o_t_e_c_t_e_d ilStatus setMinValue(double val) ilStatus setMaxValue(double val) MMMMaaaannnnaaaaggggiiiinnnngggg tttthhhheeee IIIImmmmaaaaggggeeee''''ssss ssssttttaaaatttteeee virtual void reset() _p_r_o_t_e_c_t_e_d ilLockedTile* lockTile3D(int x, int y, int z, int nx, int ny, int nz, const ilConfig* config=NULL, int mode=ilLMread) ilLockedTile* lockTile(int x, int y, int nx, int ny, const ilConfig* config=NULL, int mode=ilLMread) ilStatus lockPageSet(ilLockRequest* set, int mode=ilLMread, int count=1) virtual ilStatus qLockPageSet(ilMpNode* parent, ilLockRequest* set, int mode=ilLMread, int count=1, ilMpManager** pMgr=NULL, ilCallback* perPageCb=NULL) virtual void unlockPageSet(ilLockRequest* set, int count=1) ilPage* lockPage(int x, int y, int z, int c, ilStatus& status, int mode=ilLMread) void unlockPage(ilPage* page) ilLockRequest* getLockTileSet(int& count, const iflTile3Dint& tile, const ilConfig* config=NULL, int includeBorder=FALSE) OOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn ssssuuuuppppppppoooorrrrtttt void mapTile(iflOrientation fromOri, iflTile2Dint& tile, iflOrientation workOri=iflOrientation(0)) void mapTile(iflOrientation fromOri, iflTile2Dfloat& tile, iflOrientation workOri=iflOrientation(0)) void mapTile(iflOrientation fromOri, iflTile2Dint &tile, iflFlip &flip, int &transXY, iflOrientation workOri=iflOrientation(0)) void mapXY(iflOrientation fromOri, int& x, int& y, iflOrientation workOri=iflOrientation(0)) void mapXY(iflOrientation fromOri, float& x, float& y, iflOrientation workOri=iflOrientation(0)) void mapXYSign(iflOrientation fromOri, float& x, float& y, iflOrientation workOri=iflOrientation(0)) void mapSize(iflOrientation fromOri, int& x, int& y, iflOrientation workOri=iflOrientation(0)) iflOrientation mapOrientation(int flipX, int flipY, int transXY=FALSE) iflOrientation mapFlipTrans(iflOrientation fromOrientation, iflFlip& flip, int& transXY, iflOrientation workOrientation=iflOrientation(0)); PPPPaaaaggggeeee 9999 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) void getSize(iflSize& size, iflOrientation workOri) int isMirrorOrientation(iflOrientation otherOri, iflOrientation workOri=iflOrientation(0)) MMMMaaaappppppppiiiinnnngggg ttttoooo oooorrrr ffffrrrroooommmm ssssoooouuuurrrrcccceeee iiiimmmmaaaaggggeeee ilStatus mapToSource(float& x, float& y, float& z, float u, float v, float w) ilStatus mapToSource(float& x, float& y, float u, float v) ilStatus mapToSource(iflXYfloat& src, const iflXYfloat& self) ilStatus mapFromSource(float& u, float& v, float& w, float x, float y, float z) ilStatus mapFromSource(float& u, float& v, float x, float y) ilStatus mapFromSource(iflXYfloat& self, const iflXYfloat& src) virtual ilStatus mapToInput(float& x, float& y, float& z, float u, float v, float w, int idx=0) ilStatus mapToInput(float& x, float& y, float u, float v, int idx=0) ilStatus mapToInput(iflXYfloat& xy, const iflXYfloat& uv, int idx=0) ilStatus void mapFromInput(float& u, float& v, float& w, float x, float y, float z, int idx=0) ilStatus mapFromInput(float& u, float& v, float x, float y, int idx=0) ilStatus mapFromInput(iflXYfloat& uv, const iflXYfloat& xy, int idx=0) CCCCoooolllloooorrrr ccccoooonnnnvvvveeeerrrrssssiiiioooonnnn ssssuuuuppppppppoooorrrrtttt ilColorImg* getColorImg(iflColorModel cm) int isColorImg() int getCopyConverter(ilImage*& other, const ilConfig* cfg) _p_r_o_t_e_c_t_e_d void checkColorModel() _p_r_o_t_e_c_t_e_d double getScaleMin() double getScaleMax() ilStatus setScaleMinMax(double min, double max) ilStatus setScaleType(iflDataType type=iflDataType(0)) void initScaleMinMax(int force=FALSE) HHHHaaaarrrrddddwwwwaaaarrrreeee AAAAcccccccceeeelllleeeerrrraaaattttiiiioooonnnn void setHwEnable(ilHwAccelEnable enable) ilHwAccelEnable getHwEnable() virtual ilHwOp* hwDefine() _p_r_o_t_e_c_t_e_d virtual ilHwPass* hwGetPass(const ilHwTarget& target, int force=FALSE) ilHwPassTable* getHwPassTable() _p_r_o_t_e_c_t_e_d ilHwOp* getHwOp() _p_r_o_t_e_c_t_e_d void setDisplayCacheEnable(int en=TRUE) _p_r_o_t_e_c_t_e_d int getDisplayCacheEnable() PPPPaaaaggggeeee 11110000 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) MMMMiiiisssscccceeeellllllllaaaannnneeeeoooouuuussss void* allocFillData(float red, float green, float blue) void freeFillData(void* data) FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS iiiillllIIIImmmmaaaaggggeeee(((()))) ilImage() ilImage(iflSize &sz) Two constructors are provided for ilImage. The default constructor takes no parameters and is used by default for derived classes. The second constructor takes a reference to an _i_f_l_S_i_z_e object, _s_z, which is used to initialize the size of the image. An iflSize object contains integer members to hold the number of pixels in the _x, _y and _z dimensions as well as the number of channels per pixel _c (see also sssseeeettttSSSSiiiizzzzeeee()). Both constructors initialize most image attributes to 0 or NULL. The ilLink altered flag is set to _i_l_I_P_g_e_n_e_r_i_c and the ilLink allowed flag is set to (_i_l_I_P_g_e_n_e_r_i_c|_i_l_I_P_m_i_n_P_i_x_e_l|_i_l_I_P_m_a_x_P_i_x_e_l|_i_l_I_P_f_i_l_l) (see the ilLink man page and the enumerated type _i_l_I_m_g_P_a_r_a_m in _i_l/_i_l_I_m_a_g_e_s._h). No compression is assumed. Status is set to ilOKAY. aaaallllllllooooccccFFFFiiiillllllllDDDDaaaattttaaaa(((()))) void* allocFillData(float red, float green, float blue) This function allocates a pixel and sets it to correspond to the given _r_e_d, _g_r_e_e_n, and _b_l_u_e pixel components. The returned value points to the allocated pixel, which should be free'd with ffffrrrreeeeeeeeFFFFiiiillllllllDDDDaaaattttaaaa(). aaaaddddddddIIIInnnnppppuuuutttt(((()))) ilStatus addInput(ilImage* inimg) Adds the image pointed to by _i_n_i_m_g to the end of the input (parent) list. See sssseeeettttIIIInnnnppppuuuutttt(). cccchhhheeeecccckkkkCCCCoooolllloooorrrrMMMMooooddddeeeellll(((()))) void checkColorModel() _p_r_o_t_e_c_t_e_d PPPPaaaaggggeeee 11111111 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) Checks the current color model against the number of channels. If there is a mismatch, the number of channels (size.c) is adjusted to match the color model. However, if the number of channels has been set, then status is set to ilBADCOLFMT. cccchhhheeeecccckkkkVVVVaaaalllliiiiddddOOOOrrrrddddeeeerrrr(((()))) void checkValidOrder(int orderMask) _p_r_o_t_e_c_t_e_d Select a data order for this image that is one of the intersection of the orders specified in _o_r_d_e_r_M_a_s_k and the allowed orders for this image (see iiiillllLLLLiiiinnnnkkkk::::::::sssseeeettttAAAAlllllllloooowwwweeeedddd()). This method is called by iiiinnnnhhhheeeerrrriiiitttt() and should only be called within an image's rrrreeeesssseeeetttt() method. cccchhhheeeecccckkkkVVVVaaaalllliiiiddddTTTTyyyyppppeeee(((()))) void checkValidType(int typeMask, int wantSigned=FALSE) _p_r_o_t_e_c_t_e_d Select a data type for this image that is one of the intersection of the types specified in _t_y_p_e_M_a_s_k and the allowed data types for this image (see iiiillllLLLLiiiinnnnkkkk::::::::sssseeeettttAAAAlllllllloooowwwweeeedddd()). If _w_a_n_t_S_i_g_n_e_d is _T_R_U_E, then a signed data type is selected if one is allowed. (See iiiiffffllllDDDDaaaattttaaaaCCCClllloooosssseeeessssttttTTTTyyyyppppeeee(((()))) for details on the selection process.) This method is called by iiiinnnnhhhheeeerrrriiiitttt() and should only be called within an image's rrrreeeesssseeeetttt() method. cccclllliiiippppTTTTiiiilllleeee(((()))) ilStatus clipTile(int &x, int &y, int &z, int &nx, int &ny, int &nz, int includeBorder=FALSE) ilStatus clipTile(iflTile3Dint& t, int includeBorder=FALSE) ilStatus clipTile(float &x, float &y, float &z, float &nx, float &ny, float &nz, int includeBorder=FALSE) ilStatus clipTile(iflTile3Dfloat& t, int includeBorder=FALSE) Clips the given tile parameters to the image bounds. The tile boundaries might be passed as parameters to ggggeeeettttTTTTiiiilllleeee3333DDDD() or sssseeeettttTTTTiiiilllleeee3333DDDD(), for example. The tile may be specified as six int parameters, or as an iflTile3Dint. Alternative versions allow the parameters to be passed as float. If _i_n_c_l_u_d_e_B_o_r_d_e_r is TRUE, then the clip bounds are increased to include the size of the page border, if any (see sssseeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((())))). If any of the parameters needed to be clipped to fit the image, this function returns ilDATACLIPPED; otherwise, it returns ilOKAY. PPPPaaaaggggeeee 11112222 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ccccoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee(((()))) ilStatus configureRetainedCache(const iflTile3Dint& tile, int c = 0, int nc = -1, int* chans = NULL, float minCacheBudget = .05, float maxCacheBudget = 1, size_t* retainedFileSize = NULL) Convenience method that calls iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() with a single iiiillllIIIImmmmaaaaggggeeeeTTTTiiiilllleeee that specifies the tile for this image denoted in the arguments _t_i_l_e, _c, _n_c, and _c_h_a_n_s. The remaining arguments are passed directly to iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee(). The value returned by iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() is returned. ccccooooppppyyyy(((()))) ilStatus copy(ilImage* from) Copies data from the image specified by _f_r_o_m. If the two images are of different sizes, only the origin-aligned intersecting portion is copied. See also ccccooooppppyyyyTTTTiiiilllleeee3333DDDD(). ccccooooppppyyyyTTTTiiiilllleeee(((()))) ilStatus copyTile(int x, int y, int nx, int ny, ilImage* other, int ox, int oy, int* chanList=NULL) ilStatus copyTile3D(int x, int y, int z, int nx, int ny, int nz, ilImage* other, int ox, int oy, int oz, int* chanList=NULL) ilStatus copyTileCfg(int x, int y, int z, int nx, int ny, int nz, ilImage* other, int ox, int oy, int oz, const ilConfig* config=NULL) These functions queue a copyTile request with qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() and wait for it to complete. The tile at _x, _y, _z of size _n_x, _n_y, _n_z is copied to this image from _o_t_h_e_r image at _o_x, _o_y, _o_z. The 2D version, ccccooooppppyyyyTTTTiiiilllleeee() calls the corresponding 3D routine with _z set to zero and _n_z and _o_z set to one. ccccooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() takes an ilConfig argument, _c_o_n_f_i_g, which is used to reconfigure the pixel data type, order, channels and orientation as well as offsetting into the channel dimension. The other two copy routines accept a channel list, which is used to construct an ilConfig object with all other taken from "this" image. The channel list in _c_o_n_f_i_g specifies a channel mapping between the "other" and "this" image. The number of entries in the list should always match the number of channels in "this" image. A -1 means no data is written for that channel. PPPPaaaaggggeeee 11113333 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) See also qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() and ggggeeeettttCCCCoooonnnnffffiiiigggg(). ffffiiiillllllllTTTTiiiilllleeee(((()))) ilStatus fillTile(int x, int y, int nx, int ny, const void* data, const ilConfig* config=NULL, const iflTile2Dint* fillMask=NULL) ilStatus fillTile3D(int x, int y, int z, int nx, int ny, int nz, const void* data, const ilConfig* config=NULL, const iflTile2Dint* fillMask=NULL) ilStatus fillTileRGB(int x, int y, int z, int nx, int ny, int nz, float red, float green, float blue, const iflTile3Dint* fillMask=NULL, iflOrientation orientation=iflOrientation(0)); These functions queue a fill tile request with qqqqFFFFiiiillllllllTTTTiiiilllleeee3333DDDD() or qqqqFFFFiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB() and wait for it to complete. The tile at position (_x,_y,_z) of size _n_x, _n_y, _n_z will be filled with a constant pixel value. ffffiiiillllllllTTTTiiiilllleeee() sets _z to zero and _n_z to one. _c_o_n_f_i_g describes the configuration (See the ilConfig man page) of the fill value _d_a_t_a; if NULL, it is assumed to have the same configuration as the image. For example, to fill a tile of an RGB image with white, _d_a_t_a should hold the values (255, 255, 255). ffffiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB() is provided as a convenience method for RGB images; the _r_e_d, _g_r_e_e_n, and _b_l_u_e pixel components are passed directly as floats. The parameter, _f_i_l_l_M_a_s_k, can be used to prevent filling a portion of the tile. If _f_i_l_l_M_a_s_k is not NULL, only the portion outside of _f_i_l_l_M_a_s_k is filled. If _c_o_n_f_i_g is not NULL and it specifies a valid orientation, then _f_i_l_l_M_a_s_k is mapped from that orientation to that of the image; otherwise _f_i_l_l_M_a_s_k is assumed to have the same orientation as that of the image. ffffiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB() takes a mask _o_r_i_e_n_t_a_t_i_o_n as a parameter which defaults to the same orientation as the image. See also the ilCacheImg man page. ffffrrrreeeeeeeeFFFFiiiillllllllDDDDaaaattttaaaa(((()))) void freeFillData(void* data) This function free's a pixel allocated with aaaallllllllooooccccFFFFiiiillllllllDDDDaaaattttaaaa(). ggggeeeettttDDDDiiiimmmmeeeennnnssssiiiioooonnnnssss(((()))) void getDimensions(iflSize& size) PPPPaaaaggggeeee 11114444 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) Returns the size of the image in the ilLowerLeftOrigin orientation. ggggeeeettttDDDDiiiirrrreeeeccccttttIIIInnnnppppuuuutttt(((()))) ilImage* getDirectInput(int idx = 0) Return the direct input at index _i_d_x, ignoring whether or not it is enabled. (See ggggeeeettttIIIInnnnppppuuuutttt() and iiiillllLLLLiiiinnnnkkkk::::::::ggggeeeettttDDDDiiiirrrreeeeccccttttPPPPaaaarrrreeeennnntttt().) ggggeeeettttDDDDiiiissssppppllllaaaayyyyCCCCaaaacccchhhheeeeEEEEnnnnaaaabbbblllleeee(((()))) int getDisplayCacheEnable() Returns the current setting for the display cache enable. See sssseeeettttDDDDiiiissssppppllllaaaayyyyCCCCaaaacccchhhheeeeEEEEnnnnaaaabbbblllleeee. ggggeeeettttCCCCoooolllloooorrrrIIIImmmmgggg(((()))) ilColorImg* getColorImg(iflColorModel cm) Returns a pointer to an ilColorImg that is a child of "this" image and has the color model specified by _c_m. The new color converter inherits most attributes, except for the color model and the number of channels, from "this" image. ggggeeeettttCCCCoooolllloooorrrrmmmmaaaapppp(((()))) ilStatus getColormap(iflColormap &cmap) const iflColormap* getColormap() These functions return the image's colormap. The first version deposits the image's color map in the iflColormap object pointed to by _c_m_a_p and returns a status value. The status value is either the image's status or ilNULLOBJ, if the colormap is NULL. If ilOKAY is not returned, then the argument is unchanged. The second version returns a pointer to this image object's colormap, which may be NULL. PPPPaaaaggggeeee 11115555 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ggggeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(((()))) iflColorModel getColorModel() Returns the color model of the image. _i_f_l_C_o_l_o_r_M_o_d_e_l is an enumerated type with the following members: _i_f_l_R_G_B red, green, blue _i_f_l_R_G_B_A red, green, blue, alpha _i_f_l_R_G_B_P_a_l_e_t_t_e RGB color mapped to a look-up table _i_f_l_H_S_V hue, saturation, value _i_f_l_C_M_Y cyan, magenta, yellow _i_f_l_C_M_Y_K cyan, magenta, yellow, black _i_f_l_N_e_g_a_t_i_v_e inverted luminance (min is white, max is black) _i_f_l_L_u_m_i_n_a_n_c_e luminance _i_f_l_L_u_m_i_n_a_n_c_e_A_l_p_h_a luminance, alpha _i_f_l_B_G_R swapped RGB, for images generated by SGI _i_f_l_A_B_G_R swapped RGBA, for images generated by SGI _i_f_l_M_u_l_t_i_S_p_e_c_t_r_a_l multiple channels of sensor-specific data The color model is used to interpret the meaning of the channels that make up a pixel. See also sssseeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(). ggggeeeettttCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn(((()))) iflCompression getCompression() Returns the image compression parameter as the enumerated type, _i_f_l_C_o_m_p_r_e_s_s_i_o_n. This parameter reflects the type of compression used in the image data. See also sssseeeettttCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn(). PPPPaaaaggggeeee 11116666 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ggggeeeettttCCCCoooonnnnffffiiiigggg(((()))) void getConfig(ilConfig* cfg) Returns the image's configuration in the ilConfig object pointed to by _c_f_g. The ilConfig class (see _i_l/_i_l_C_o_n_f_i_g._h) contains eight elements: an iflDataType that defines the data type of the image's pixels, an iflOrder that describes how that data is ordered, an int that sets how many data channels there are, an array of ints that determines the order of the channels, an iflOrientation, and three zoom factors for the three dimensions. See also ggggeeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(), ggggeeeettttOOOOrrrrddddeeeerrrr(), ggggeeeettttNNNNuuuummmmCCCChhhhaaaannnnssss() and ggggeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(). ggggeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((()))) iflOrientation getOrientation() Returns the image orientation parameter as the enumerated type, _i_f_l_O_r_i_e_n_t_a_t_i_o_n. This parameter determines, for example, whether the image origin is the upper left corner or the lower left corner. See also sssseeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(). ggggeeeettttCCCCooooppppyyyyCCCCoooonnnnvvvveeeerrrrtttteeeerrrr(((()))) int getCopyConverter(ilImage*& other, const ilConfig* cfg) _p_r_o_t_e_c_t_e_d If the _o_t_h_e_r image has a different color model than this image, a color converter operator is chained onto _o_t_h_e_r and TRUE is returned (the new operator is returned via _o_t_h_e_r). If the color models are compatible, OR if the _c_f_g specifies a channel list or channel offset, then no operator is chained and FALSE is returned. When _c_f_g specifies a channel list or offset, it is assumed that no color conversion should be performed. ggggeeeettttCCCCssssiiiizzzzeeee(((()))) int getCsize() int getNumChans() Returns the number of channels in the image. For example an RGB image is a 3 channel image. PPPPaaaaggggeeee 11117777 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ggggeeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(((()))) iflDataType getDataType() Returns the data type of the image's pixels. The iflDataType value returned can be one of the following: _i_f_l_B_i_t, _i_f_l_C_h_a_r, _i_f_l_U_C_h_a_r, _i_f_l_S_h_o_r_t, _i_f_l_U_S_h_o_r_t, _i_f_l_L_o_n_g, _i_f_l_U_L_o_n_g, _i_f_l_F_l_o_a_t, or _i_f_l_D_o_u_b_l_e. See also ggggeeeettttCCCCoooonnnnffffiiiigggg(). ggggeeeettttFFFFiiiillllllll(((()))) const iflPixel& pixel getFill() Returns a reference to the image's fill pixel value. See also sssseeeettttFFFFiiiillllllll(). ggggeeeettttFFFFiiiillllllllDDDDaaaattttaaaa(((()))) const void* getFillData() This function calls the ggggeeeettttDDDDaaaattttaaaa() method of the image's fill pixel and returns the result. ggggeeeettttFFFFiiiillllllllVVVVaaaalllluuuueeee(((()))) double getFillValue(int c=0) Returns the image fill value of channel _c. See also ggggeeeettttFFFFiiiillllllll(). ggggeeeettttHHHHeeeeiiiigggghhhhtttt(((()))) int getHeight() Returns the height of _i_m_g. See also getWidth() and getYsize(). ggggeeeettttHHHHwwwwEEEEnnnnaaaabbbblllleeee(((()))) ilHwAccelEnable getHwEnable() This function returns the value of the hardware acceleration enable flag as set by sssseeeettttHHHHwwwwEEEEnnnnaaaabbbblllleeee(). ggggeeeettttHHHHwwwwOOOOpppp(((()))) PPPPaaaaggggeeee 11118888 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ilHwOp *getHwOp() _p_r_o_t_e_c_t_e_d This function returns a pointer to the ilHwOp private member variable; it is provided to allow access by derived classes. Currently, user-defined hardware acceleration is unsupported. For more information on hardware acceleration, see ilHwDefs.h and the Programmer's Guide. ggggeeeettttHHHHwwwwPPPPaaaassssssssTTTTaaaabbbblllleeee(((()))) ilHwPassTable* getHwPassTable() _p_r_o_t_e_c_t_e_d This function returns a pointer to the ilHwPassTable for this image; it is provided to allow access to this table by derived classes. Currently, user-defined hardware acceleration is unsupported. For more information on hardware acceleration, see ilHwDefs.h and the Programmer's Guide. ggggeeeettttIIIInnnnppppuuuutttt(((()))) ilImage* getInput(int idx = 0) Returns a pointer to the ilImage at index _i_d_x in the parent list. NULL is returned if there is no image at the specified index. The default index is 0. ggggeeeettttIIIInnnnppppuuuuttttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnntttt(((()))) ilImageTile* getInputTileRequirement(const iflTile3Dint& tile, int c, int nc, int* chans, int& pageSetCount) This method is used by the global function iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() to determine the input data requirement to evaluate a given output tile. The method really ought to be a virtual, so that derived classes can easily override its behavior, but it cannot be done this way and still maintain binary compatibility with IL 3.1.1. Therefore, a derived class can override the behavior of this method only by calling the method sssseeeettttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnnttttFFFFuuuunnnnccccttttiiiioooonnnn() to establish a new behavior. The default implementation returns an array of iiiillllIIIImmmmaaaaggggeeeeTTTTiiiilllleeee's, one for each of the image's inputs, with tile coordinates identical to the passed tile coordinates. Derived classes, such as iiiillllMMMMoooonnnnaaaaddddiiiiccccIIIImmmmgggg and iiiillllPPPPoooollllyyyyaaaaddddiiiiccccIIIImmmmgggg, override the default behavior to take input offsets into account. iiiillllWWWWaaaarrrrppppIIIImmmmgggg overrides the default behavior to PPPPaaaaggggeeee 11119999 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) incorporate the effect of the warp. As an example of overriding the default behavior, here is iiiillllPPPPoooollllyyyyaaaaddddiiiiccccIIIImmmmgggg's version: ilImageTile* ilPolyadicImg::getInputTileRequirement(const iflTile& tile, int c, int nc, int* chans, int& inputTileCount) { if (resetCheck()) { inputTileCount = 0; return NULL; } int count = getNumParents(); ilImageTile* inputTiles = new ilImageTile [count]; int activeCount = 0; ilLinkParentIter iter(this); ilLink* link; while (link = iter.next()) { if (link->derivesFrom(iflClassID(ilImage))) { ilImage* img = (ilImage*)link; iflTile offTile = tile; int idx = iter.currIndex(); if (idx >= 0) { int x, y, z; getOffset(x, y, z, idx); offTile.x -= x; offTile.y -= y; offTile.z -= z; } inputTiles[activeCount++].init(img, offTile, c, nc, chans); } else if (link->derivesFrom(iflClassID(ilImgStat))) activeCount += ((ilImgStat*)link) ->getInputTileRequirement(inputTiles[activeCount]); } inputTileCount = activeCount; if (activeCount == 0) { delete inputTiles; inputTiles = NULL; } return inputTiles; } ggggeeeettttLLLLoooocccckkkkTTTTiiiilllleeeeSSSSeeeetttt(((()))) ilLockRequest* getLockTileSet(int& count, const iflTile3Dint& tile, const ilConfig* config=NULL, int includeBorder=FALSE) This function generates an array of ilLockRequests corresponding to the specified "tile" in the image. These requests can then be passed to lllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() and uuuunnnnlllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() to lock the pages comprising the tile. If _i_n_c_l_u_d_e_B_o_r_d_e_r is TRUE then all pages that PPPPaaaaggggeeee 22220000 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) intersect the tile comprise the set. Otherwise, the smallest set of pages that cover the tile comprises the set. This distinction is relevant only if the image has non-zero page borders. Generally, you should set _i_n_c_l_u_d_e_B_o_r_d_e_r to TRUE if you are generating the set for writing, and FALSE if you are generating the set for reading. The number of generated lock requests is returned in the reference parameter "count". The returned ilLockRequest set is in nnnneeeewwww()'ed memory. It is the responsibility of the caller to delete the set when no longer in use. ggggeeeettttMMMMaaaaxxxxCCCCoooolllloooorrrrmmmmaaaappppLLLLeeeevvvveeeellllssss(((()))) int getMaxColormapLevels() This function returns the maximum color map level attribute set with sssseeeettttMMMMaaaaxxxxCCCCoooolllloooorrrrmmmmaaaappppLLLLeeeevvvveeeellllssss(). ggggeeeettttMMMMaaaaxxxxVVVVaaaalllluuuueeee(((()))) double getMaxValue() Returns the maximum allowable value for this image object. ggggeeeettttMMMMiiiinnnnVVVVaaaalllluuuueeee(((()))) double getMinValue() Returns the minimum allowable value for this image object. ggggeeeettttNNNNuuuummmmIIIInnnnppppuuuuttttssss(((()))) int getNumInputs() Returns the number of images in this image's input (parent) list. ggggeeeettttOOOOrrrrddddeeeerrrr(((()))) iflOrder getOrder() Returns the pixel channel order of this image. The enumerated type, _i_f_l_O_r_d_e_r, has members _i_f_l_I_n_t_e_r_l_e_a_v_e_d, _i_f_l_S_e_q_u_e_n_t_i_a_l, or _i_f_l_S_e_p_a_r_a_t_e to indicate how the pixel data is ordered. For _i_f_l_I_n_t_e_r_l_e_a_v_e_d, all pixel channels are stored adjacently. For an RGB color image, this would be RGBRGBRGB, and so forth. For _i_f_l_S_e_q_u_e_n_t_i_a_l, each pixel channel is stored as a separate line. For an RGB color image, this is a line of Red, followed by a line of PPPPaaaaggggeeee 22221111 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) Green, followed by a line of Blue for one line of RGB pixels. For _i_f_l_S_e_p_a_r_a_t_e, each channel is stored in a separate page. See the _I_m_a_g_e_V_i_s_i_o_n _L_i_b_r_a_r_y _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e for more details. ggggeeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((()))) void getPageBorder(iflXYZint& border) const iflXYZint& getPageBorder() int getPageBorderX() int getPageBorderY() int getPageBorderZ() Returns the page border size in an iflXYZint structure. The alternative methods provide access to the per-coordinate page border values. ggggeeeettttPPPPaaaaggggeeeeCCCCoooouuuunnnnttttssss(((()))) void getPageCounts(int& nx, int& ny, int& nz, int& nc) Returns the number of pages required to cover the entire image extent in each of the _x, _y, _z, and _c dimensions ggggeeeettttPPPPaaaaggggeeeeDDDDeeeellllttttaaaa(((()))) void getPageDelta(iflXYZCint& delta) void getPageDelta(int &nx, int &ny, int &nz, int &nc) Returns the effective page size with page borders removed. It is computed by subtracting twice the page border size from the current page size. ggggeeeettttPPPPaaaaggggeeeeIIIInnnnddddiiiicccceeeessss(((()))) void getPageIndices(int x, int y, int z, int c, int& ix, int& iy, int& iz, int& ic) Return the indices of the image page containing the point (_x, _y, _z, _c). ggggeeeettttPPPPaaaaggggeeeeOOOOrrrriiiiggggiiiinnnn(((()))) ilStatus getPageOrigin(int x, int y, int z, int c, int& px, int& py, int& pz, int& pc) ilStatus getPageOrigin(const iflXYZCint& pos, iflXYZCint& org) int getPageOriginX(int x) int getPageOriginY(int y) PPPPaaaaggggeeee 22222222 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) int getPageOriginZ(int z) int getPageOriginC(int c) This method returns the origin of the page that contains the point passed in as _x, _y, _z, and _c. The coordinates of the page are returned in _p_x, _p_y, _p_c, and _p_z. The returned page coordinates may correspond to a page that does not actually reside within the image bounds if the passed pixel coordinates are also outside the image bounds. If the image has page borders, then it is possible that more than one page contains the point. In this case, the page with the greatest coordinate values is returned. If the image's status is not ilOKAY, then that status is returned and the page coordinates values are not set. Otherwise, ilOKAY is returned. Alternative methods are provided to compute each of the page coordinates independently. ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(((()))) size_t getPageSize() size_t getPageSize(int& nx, int& ny) size_t getPageSize(int& nx, int& ny, int& nz, int& nc) size_t getPageSize(iflSize& pageSize) size_t getPageSize(iflSize& pageSize, iflOrientation ori) size_t getPageDimensions(iflSize& pageSize) Returns the image page size in bytes. This takes into account the number of channels per pixel and the channel data type. The second and third versions also return the page size in the x, y, z, c dimensions in _n_x, _n_y, _n_z and _n_c. The fourth version returns the page size in an iflSize structure, possibly transformed into the orientation specified in _o_r_i. The x and y page size will be transposed as needed, based on the orientation. See also the ilCacheImg man page. The ggggeeeettttPPPPaaaaggggeeeeDDDDiiiimmmmeeeennnnssssiiiioooonnnnssss method returns the page size in a standard (non-transposed) orientation. This is useful if you are interested in the "width" or "height" of a page, independent of the data orientation. PPPPaaaaggggeeee 22223333 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeXXXX(((()))) ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeYYYY(((()))) ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeZZZZ(((()))) ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeCCCC(((()))) int getPageSizeX() int getPageSizeY() int getPageSizeZ() int getPageSizeC() Returns the image's page size in the _x-, _y-, _z-, _c-dimensions, respectively. ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeePPPPiiiixxxx(((()))) int getPageSizePix() Returns the image page size in pixels. See also ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(). ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeVVVVaaaallll(((()))) int getPageSizeVal() Returns the image page size in terms of discrete values. This takes into account the number of channels per pixel that is, it returns ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeePPPPiiiixxxx() * number of channels in the page). See also ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(). ggggeeeettttPPPPiiiixxxxeeeellll(((()))) ilStatus getPixel(int x, int y, iflPixel& pix) This function is the 2-D version of ggggeeeettttPPPPiiiixxxxeeeellll3333DDDD(). It calls ggggeeeettttPPPPiiiixxxxeeeellll3333DDDD() with _z set to 0. See also ggggeeeettttPPPPiiiixxxxeeeellll3333DDDD(). ggggeeeettttPPPPiiiixxxxeeeellll3333DDDD(((()))) ilStatus getPixel3D(int x, int y, int z, iflPixel& pix) Gets the iflPixel at the point specified by _x, _y, and _z and returns it in _p_i_x. An iflPixel specifies the channel data type, the number of channels per pixel and a pointer to the pixel data. This function calls ggggeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() with the tile size _n_x, _n_y, _n_z set to 1. Returns ilOKAY upon successful completion. See also ggggeeeettttPPPPiiiixxxxeeeellll(), ggggeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and sssseeeettttPPPPiiiixxxxeeeellll3333DDDD(). PPPPaaaaggggeeee 22224444 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ggggeeeettttPPPPrrrriiiioooorrrriiiittttyyyy(((()))) int getPriority() This function gets the current cache priority of this image. See sssseeeettttPPPPrrrriiiioooorrrriiiittttyyyy() for more details. ggggeeeettttSSSSccccaaaalllleeeeMMMMaaaaxxxx(((()))) double getScaleMax() Returns the maximum value used for scaling during color conversion and display. By default the maximum scale value tracks the maximum value of the image. However, it may be set with sssseeeettttSSSSccccaaaalllleeeeMMMMiiiinnnnMMMMaaaaxxxx(). ggggeeeettttSSSSccccaaaalllleeeeMMMMiiiinnnn(((()))) double getScaleMin() Returns the minimum value used for scaling during color conversion and display. By default the minimum scale value tracks the minimum value of the image. However, it may be set with sssseeeettttSSSSccccaaaalllleeeeMMMMiiiinnnnMMMMaaaaxxxx(). ggggeeeettttSSSSiiiizzzzeeee(((()))) void getSize(iflSize& size) void getSize(iflSize& size, iflOrientation workOri) const iflSize& getSize() The first version returns the image size in the iflSize object referenced by _s_i_z_e. An iflSize has integer member variables _x, _y, _z, and _c to hold each dimension of the image. The second version first maps the image's size to the orientation indicated by _w_o_r_k_O_r_i. If the indicated orientation is transposed relative to the image's orientation, then the _x and _y sizes are swapped in the returned size. See also ggggeeeettttXXXXSSSSiiiizzzzeeee(), ggggeeeettttYYYYSSSSiiiizzzzeeee(), ggggeeeettttZZZZSSSSiiiizzzzeeee() and ggggeeeettttCCCCSSSSiiiizzzzeeee(). The third version returns a reference to the actual _s_i_z_e attribute of this image object. ggggeeeettttSSSSttttrrrriiiiddddeeeessss(((()))) void getStrides(int& xs, int& ys, int& zs, int& cs, int nx=0, int ny=0, int nz=0, int nc=0, iflOrder ord=iflOrder(0)) PPPPaaaaggggeeee 22225555 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) Returns by reference the x stride (_x_s), y stride (_y_s), z stride (_z_s), channel stride (_c_s) and number of channels (_n_c). The buffer strides are used to step through a data buffer of size _n_x by _n_y that contains pixels with channel order _o_r_d. The default order is _n_u_m_i_f_l_O_r_d_e_r_s and causes the current data order to be used. The x stride is used to step from one pixel to the next in the same row. The y stride is used to step to the next pixel in the same column. For 3D images, the z stride is used to step to the next pixel along the z axis at the same xy location. A multiplier _n can be used to move _n pixels in a desired direction within the data buffer. The channel stride is used to step to the next channel of the same pixel. ggggeeeettttTTTTiiiilllleeee(((()))) ilStatus getTile(int x, int y, int nx, int ny, void* data, const ilConfig* config=NULL) ilStatus getTile3D(int x, int y, int z, int nx, int ny, int nz, void* data, const ilConfig* config=NULL) ilStatus getSubTile(int x, int y, int nx, int ny, void* data, int dx, int dy, int dnx, int dny, const ilConfig* config=NULL) ilStatus getSubTile3D(int x, int y, int z, int nx, int ny, int nz, void* data, int dx, int dy, int dz, int dnx, int dny, int dnz, const ilConfig* config=NULL) These functions queue a tile read request with qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and wait for it to complete. The source tile origin is specified by _x, _y, _z, and the tile size is specified by _n_x, _n_y, _n_z. The 2D versions, ggggeeeettttTTTTiiiilllleeee() and ggggeeeettttSSSSuuuubbbbTTTTiiiilllleeee(), call the corresponding 3D routine with _z set to zero and _n_z set to one. ggggeeeettttTTTTiiiilllleeee() and ggggeeeettttTTTTiiiilllleeee3333DDDD() assume that the destination buffer has the same offset and size as the request; ggggeeeettttSSSSuuuubbbbTTTTiiiilllleeee() and ggggeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() allow the destination buffer to have a different position and size, specified by _d_x, _d_y, _d_n_x, and _d_n_y (and _d_z and _d_n_z for the 3D version.) Optionally, an ilConfig object pointed to by _c_o_n_f_i_g can be used to specify the desired data type, order, number of channels and channel order. _c_o_n_f_i_g is NULL by default, meaning that no conversion is performed on the input data. See also qqqqGGGGeeeettttTTTTiiiilllleeee3333DDDD(), qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and ggggeeeettttCCCCoooonnnnffffiiiigggg(). PPPPaaaaggggeeee 22226666 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ggggeeeettttWWWWiiiiddddtttthhhh(((()))) int getWidth() Returns the width of _i_m_g. See also getHeight() and getXsize(). ggggeeeettttXXXXssssiiiizzzzeeee(((()))) int getXsize() Returns the size of the image in the _x-dimension, measured in pixels. Note that by definition in the IL, the _x-dimension is always the fastest varying dimension in image memory order. I.e. the scanline dimension. In non-transposed orientations, scanlines are oriented horizontally with respect to the image. Thus, for non-transposed orientations getXsize() returns the _w_i_d_t_h of the image. In transposed orientations the scanlines are oriented vertically with respect to the image and getXsize() returns the _h_e_i_g_h_t of the image. Transposed orientations are: _i_f_l_L_e_f_t_U_p_p_e_r_O_r_i_g_i_n, _i_f_l_R_i_g_h_t_U_p_p_e_r_O_r_i_g_i_n, _i_f_l_R_i_g_h_t_L_o_w_e_r_O_r_i_g_i_n and _i_f_l_L_e_f_t_L_o_w_e_r_O_r_i_g_i_n. See also ggggeeeettttHHHHeeeeiiiigggghhhhtttt(), ggggeeeettttWWWWiiiiddddtttthhhh(), ggggeeeettttSSSSiiiizzzzeeee(), ggggeeeettttYYYYssssiiiizzzzeeee() and ggggeeeettttZZZZssssiiiizzzzeeee(). ggggeeeettttYYYYssssiiiizzzzeeee(((()))) int getYsize() Returns the size of the image in the _y-dimension, measured in pixels. See also ggggeeeettttHHHHeeeeiiiigggghhhhtttt(), ggggeeeettttWWWWiiiiddddtttthhhh(), ggggeeeettttSSSSiiiizzzzeeee(), ggggeeeettttXXXXssssiiiizzzzeeee() and ggggeeeettttZZZZssssiiiizzzzeeee(). ggggeeeettttZZZZssssiiiizzzzeeee(((()))) int getZsize() Returns the size of the image in the _z-dimension. This value can be thought of as representing the number of _x_y planes in an image. For two-dimensional images, the returned value is 1. Refer to the _I_m_a_g_e_V_i_s_i_o_n _L_i_b_r_a_r_y _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e for more details. See also ggggeeeettttSSSSiiiizzzzeeee(), ggggeeeettttXXXXssssiiiizzzzeeee() and ggggeeeettttYYYYssssiiiizzzzeeee(). PPPPaaaaggggeeee 22227777 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) hhhhaaaassssPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((()))) int hasPageBorder() This functions returns TRUE if the image has page borders, FALSE otherwise. hhhhaaaassssPPPPaaaaggggeeeessss(((()))) int hasPages() This virtual function should be defined by derived classes to return TRUE if the class implements paging. The default implementation returns FALSE. iiiinnnnhhhheeeerrrriiiitttt(((()))) int inherit(int typeMask=0, int orderMask=0, int allowDiffColorModels=FALSE)_p_r_o_t_e_c_t_e_d This is a convenience method that can be called in an iiiillllIIIImmmmaaaaggggeeee- derived subclass' rrrreeeesssseeeetttt() method to inherit standard image attributes such as page size, data type, orientation, and so forth, from the image's inputs. Only those attributes that have not been explicitly set are affected. The following attributes are set by inherit: color model data type data order data orientation color map size page size min and max values The parameters _t_y_p_e_M_a_s_k and _o_r_d_e_r_M_a_s_k, if non-zero, limit the possible inherited data type and order to the subsets specified in the respective masks. If _a_l_l_o_w_D_i_f_f_C_o_l_o_r_M_o_d_e_l_s is _T_R_U_E, then the image is allowed to have a different color model than its inputs. Normally, this is not allowed, and a color converting image is automatically inserted to coerce the input color models to the image's color model. iiiinnnniiiittttCCCCoooolllloooorrrrMMMMooooddddeeeellll(((()))) void initColorModel(int noAlpha=FALSE) _p_r_o_t_e_c_t_e_d PPPPaaaaggggeeee 22228888 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) Initializes the color model based on the number of channels if it has never been explicitly set with sssseeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(). Images with one channel are set to _i_f_l_L_u_m_i_n_a_n_c_e. Images with two channel are set to _i_f_l_L_u_m_i_n_a_n_c_e_A_l_p_h_a. Images with three channels are set to _i_f_l_R_G_B. Images with four channels are set to _i_f_l_R_G_B_A by default. If _n_o_A_l_p_h_a is true, then images with two or four channels are set to _i_f_l_M_u_l_t_i_S_p_e_c_t_r_a_l instead. All other cases are set to _i_f_l_M_u_l_t_i_S_p_e_c_t_r_a_l. iiiinnnniiiittttMMMMiiiinnnnMMMMaaaaxxxx(((()))) void initMinMax(int force=FALSE) _p_r_o_t_e_c_t_e_d Initializes the minimum and maximum value of a pixel based on the data type (for example, 0 and 255) for unsigned char data. _f_o_r_c_e is FALSE by default, indicating that the minimum and maximum values should not be forced to change if they have already been set. iiiinnnniiiittttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(((()))) void initPageSize(const iflSize& pageSize) _p_r_o_t_e_c_t_e_d void initPageSize(int nx, int ny, int nz, int nc) _p_r_o_t_e_c_t_e_d Initializes the page size to _p_a_g_e_S_i_z_e only if it has not been previously set (separate flags track whether x/y, z and c values have been set). The member _p_a_g_e_S_i_z_e_B_y_t_e_s is also computed to match the new page dimensions and the image's data type. iiiinnnniiiittttSSSSccccaaaalllleeeeMMMMiiiinnnnMMMMaaaaxxxx(((()))) void initScaleMinMax(int force=FALSE) Initializes the scale minimum and maximum to the image minimum and maximum values. If scale minimum and maximum have already been set, they are unchanged, unless _f_o_r_c_e is TRUE. The scale minimum and maximum are used during color conversion and display. By default, the scale minimum and maximum track the image minimum and maximum values. iiiissssCCCCoooolllloooorrrrIIIImmmmgggg(((()))) int isColorImg() Returns TRUE if the image is a color converter that was created with ggggeeeettttCCCCoooolllloooorrrrIIIImmmmgggg(). Otherwise FALSE is returned. PPPPaaaaggggeeee 22229999 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) iiiissssIIIInnnntttteeeeggggrrrraaaallll(((()))) int isIntegral() Returns TRUE if the image's data type is an integral valued type. If it is a floating point type, then FALSE is returned. This function is based on the standalone function, iiiiffffllllDDDDaaaattttaaaaIIIIssssIIIInnnntttteeeeggggrrrraaaallll() (see the iflDataSize man page). iiiissssMMMMiiiirrrrrrrroooorrrrOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((()))) int isMirrorOrientation(iflOrientation otherOri, iflOrientation workOri=iflOrientation(0)) The routine returns _T_R_U_E if _o_t_h_e_r_O_r_i is a mirror image of _w_o_r_k_O_r_i. If _w_o_r_k_O_r_i is defaulted, the orientation of the image is used instead. This can be useful when implementing operations that have calculations that depend on a particular frame of reference. For example, when implementing an image rotation operator, the angle can need to be negated to produce consistent results on inputs of arbitrary orientation. iiiissssPPPPaaaarrrrttttiiiiaaaallllPPPPaaaaggggeeee(((()))) int isPartialPage(int x, int y, int z, int c) _p_r_o_t_e_c_t_e_d Returns TRUE if the page referenced by the coordinates (_x, _y, _z, _c) is only partially filled with image data; that is, if the page straddles the edge of the image. iiiissssSSSSiiiiggggnnnneeeedddd(((()))) int isSigned() Returns TRUE if the image's data type is signed. If it is unsigned, then FALSE is returned. This function is based on the standalone function, iiiiffffllllDDDDaaaattttaaaaIIIIssssSSSSiiiiggggnnnneeeedddd() (see the iflDataSize man page). iiiissssVVVVaaaalllliiiiddddPPPPaaaaggggeeee(((()))) int isValidPage(int x, int y, int z, int c) _p_r_o_t_e_c_t_e_d Returns TRUE if the pixel referenced by the coordinates (_x, _y, _z, _c) is within the image boundary. The image boundary is defined to be within (-_x_P_a_g_e_B_o_r_d_e_r ,-_y_P_a_g_e_B_o_r_d_e_r, -_z_P_a_g_e_B_o_r_d_e_r, _0) and (_s_i_z_e._x, _s_i_z_e._y, _s_i_z_e._z, _s_i_z_e._c). PPPPaaaaggggeeee 33330000 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) iiiissssWWWWrrrriiiittttaaaabbbblllleeee(((()))) int isWritable() This function returns TRUE if the image can be written to; FALSE otherwise. hhhhwwwwDDDDeeeeffffiiiinnnneeee(((()))) virtual ilHwOp* hwDefine() _p_r_o_t_e_c_t_e_d This virtual returns a new'ed ilHwOp object that specifies the hardware-accelerated implementation of the operation. Currently, user-defined hardware acceleration is unsupported. Therefore, you should not override this virtual method. For more information on hardware acceleration, see ilHwDefs.h and the Programmer's Guide. hhhhwwwwGGGGeeeettttPPPPaaaassssssss(((()))) virtual ilHwPass* hwGetPass(const ilHwTarget& target, int force=FALSE) This function returns a ilHwPass object for a given _t_a_r_g_e_t (defining the graphics server and visual class). This ilHwPass object specifies how the operation is performed in the graphics hardware. Currently, user-defined hardware acceleration is unsupported. Therefore, you should not override this virtual method. For more information on hardware acceleration, see ilHwDefs.h and the Programmer's Guide. lllloooocccckkkkPPPPaaaaggggeeee(((()))) ilPage* lockPage(int x, int y, int z, int c, ilStatus& status, int mode=ilLMread) This is the single page version of lockPageSet(). It returns a pointer to the page containing the pixel _x, _y, _z, _c. The _s_t_a_t_u_s value specifies the error code if a page could not be referenced. If the function succeeds, _s_t_a_t_u_s is set to ilOKAY. See qLockPageSet() for a description of _m_o_d_e and possible _s_t_a_t_u_s returns. See also _u_n_l_o_c_k_P_a_g_e(). lllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt(((()))) ilStatus lockPageSet(ilLockRequest* set, int mode=ilLMread, int count=1, ilCallback* perPageCb=NULL) PPPPaaaaggggeeee 33331111 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) This function queues a list of lock page requests with qqqqLLLLoooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() and waits for them to complete. Each ilLockRequest in the _s_e_t array is locked and a pointer to the page is deposited in the corresponding ilLockRequest. As a consequence, this causes all the image data for the pages to be computed. If all of the requests succeed, ilOKAY is returned. If one or more fail, an error code will be returned and the ilLockRequest structures will contain individual status codes. At a later time, uuuunnnnlllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() can be called to release the set of pages. See qqqqLLLLoooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() and uuuunnnnlllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() for more information. lllloooocccckkkkTTTTiiiilllleeee(((()))) ilLockedTile* lockTile(int x, int y, int nx, int ny, const ilConfig* config=NULL, int mode=ilLMread) This is the 2-D version of lockTile3D(). It calls lockTile3D() with _z set to 0 and _n_z set to 1. lllloooocccckkkkTTTTiiiilllleeee3333DDDD(((()))) ilLockedTile* lockTile3D(int x, int y, int z, int nx, int ny, int nz, const ilConfig* config=NULL, int mode=ilLMread) This function causes the tiles that intersect the indicated image volume to be ``locked.'' This is accomplished by ``locking'' the image pages which store the data for the affected tiles. These pages remain locked until the ilLockedTile object returned by lockTile3D() is deleted. The status result of the function can be retrieved by calling the getStatus() method of the returned ilLockedTile object. ``Locking'' is implemented by a virtual function in ilImage. In the default implementation, copies of the affected pages are computed and stored in locally allocated storage. Some derived classes provide more interesting implementations which manage shared cache storage, etc. One example is ilMemCacheImg. mmmmaaaappppFFFFlllliiiippppTTTTrrrraaaannnnssss(((()))) iflOrientation mapFlipTrans(iflOrientation fromOrientation, iflFlip& flip, int& transXY, iflOrientation workOrientation=iflOrientation(0)) This function determines the flips and/or transpositions required to map from _f_r_o_m_O_r_i_e_n_t_a_t_i_o_n to _w_o_r_k_O_r_i_e_n_t_a_t_i_o_n (if the work orientation is zero, the image's orientation is used). The return value is the work orientation. The required _f_l_i_p and _t_r_a_n_s_X_Y values are also PPPPaaaaggggeeee 33332222 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) returned. mmmmaaaappppFFFFrrrroooommmmIIIInnnnppppuuuutttt(((()))) virtual ilStatus mapFromInput(float& u, float& v, float& w, float x, float y, float z, int idx=0) ilStatus mapFromInput(float& u, float& v, float x, float y, int idx=0) ilStatus mapFromInput(iflXYfloat& uv, const iflXYfloat& xy, int idx=0) Maps a point, (_x,_y,_z), from the _i_d_x'th input image's output coordinate space to this image's output coordinate space and returns the result in (_u,_v,_w). This virtual function's default implementation is the identity mapping. It can be overridden in derived classes (like ilWarpImg) to take into account any address manipulations that an operator can perform. The overloaded versions provide 2D address mapping, which is sufficient for most applications. Note that the IL does not yet support images with non-identity coordinate mappings in the z dimension, and all coordinates (input and output) are described in the orientation of this image. See also mmmmaaaappppFFFFrrrroooommmmSSSSoooouuuurrrrcccceeee(((()))), mmmmaaaappppTTTTooooIIIInnnnppppuuuutttt(((()))). mmmmaaaappppFFFFrrrroooommmmSSSSoooouuuurrrrcccceeee(((()))) ilStatus mapFromSource(float& u, float& v, float& w, float x, float y, float z) ilStatus mapFromSource(float& u, float& v, float x, float y) ilStatus mapFromSource(iflXYfloat& self, const iflXYfloat& src) Maps a point, (_x,_y,_z), in the ultimate source image's input coordinate space to this image's output coordinate space and returns the result in (_u,_v,_w). Both points are defined in this image's orientation. One possible use for this is to determine where to plot annotation that is tied to the source image when zooming and rotating an image. The ilView function, sssseeeettttLLLLoooocccc(((()))), also uses this function to position a location in the source image of an operator chain at the center of the viewed region. The overloaded versions provide 2D address mapping, which is sufficient for most applications. Note that the IL does not yet support images with non-identity coordinate mappings in the z dimension. See also mmmmaaaappppTTTTooooSSSSoooouuuurrrrcccceeee(((()))), mmmmaaaappppFFFFrrrroooommmmIIIInnnnppppuuuutttt(((()))) and the ilView man page. mmmmaaaappppSSSSiiiizzzzeeee(((()))) void mapSize(iflOrientation fromOri, int& x, int& y, iflOrientation workOri=iflOrientation(0)) Transposes the _x and _y size as needed, based on _f_r_o_m_O_r_i and _w_o_r_k_O_r_i. If _w_o_r_k_O_r_i is 0, then the image's orientation is used. PPPPaaaaggggeeee 33333333 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) mmmmaaaappppOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((()))) iflOrientation mapOrientation(int flipX, int flipY, int transXY=FALSE) The function returns the orientation that results from applying the flips and transpose requested to the image's orientation. If _f_l_i_p_X is TRUE, the _x dimension is flipped. If _f_l_i_p_Y is TRUE, the _y dimension is flipped. If _t_r_a_n_s_X_Y is TRUE, the _x and _y dimensions are transposed. mmmmaaaappppTTTTiiiilllleeee(((()))) void mapTile(iflOrientation fromOri, iflTile2Dint& tile, iflOrientation workOri=iflOrientation(0)) void mapTile(iflOrientation fromOri, iflTile2Dfloat& tile, iflOrientation workOri=iflOrientation(0)) void mapTile(iflOrientation fromOri, iflTile2Dint &tile, iflFlip &flip, int &transXY, iflOrientation workOri=iflOrientation(0)) The tile referenced by _t_i_l_e is mapped from orientation _f_r_o_m_O_r_i to the orientation _w_o_r_k_O_r_i. If _w_o_r_k_O_r_i is defaulted, the orientation of the image is used instead. The origin and size members of _t_i_l_e are recomputed to reflect this mapping. The value returned in the iflFlip enumerated type, _f_l_i_p indicates whether the _x or the _y axis, or both, had to be flipped to effect the mapping. If no flipping was required, then _i_f_l_N_o_F_l_i_p is returned. If the _x or _y axis was flipped, _i_f_l_X_F_l_i_p or _i_f_l_Y_F_l_i_p is returned. If both axes were flipped, (_i_f_l_X_F_l_i_p | _i_f_l_Y_F_l_i_p) is returned. If, to effect the mapping, the x and y axes had to be interchanged (that is, the new x origin and size are the old y origin and size and the converse is true), then a 1 is returned in _t_r_a_n_s_X_Y; otherwise _t_r_a_n_s_X_Y is 0. mmmmaaaappppTTTTooooIIIInnnnppppuuuutttt(((()))) virtual ilStatus mapToInput(float& x, float& y, float& z, float u, float v, float w, int idx=0) ilStatus mapToInput(float& x, float& y, float u, float v, int idx=0) ilStatus mapToInput(iflXYfloat& xy, const iflXYfloat& uv, int idx=0) Maps a point, (_u,_v,_w), in this image's output coordinate space to the _i_d_x'th input image's output coordinate space and returns the result in (_x,_y,_z). This virtual function's default implementation assumes the identity mapping. It can be overridden in derived classes (like ilWarpImg) to take into account any address manipulations that an operator can perform. The overloaded versions provide 2D address mapping, which is sufficient for most applications. Note that the IL does not yet support images with non-identity coordinate mappings in the z dimension, and all points PPPPaaaaggggeeee 33334444 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) are defined in the orientation of this image. See also mmmmaaaappppTTTTooooSSSSoooouuuurrrrcccceeee(((()))), mmmmaaaappppFFFFrrrroooommmmIIIInnnnppppuuuutttt(((()))). mmmmaaaappppTTTTooooSSSSoooouuuurrrrcccceeee(((()))) ilStatus mapToSource(float& x, float& y, float& z, float u, float v, float w) ilStatus mapToSource(float& x, float& y, float u, float v) ilStatus mapToSource(iflXYfloat& src, const iflXYfloat& self) Maps a point, (_u,_v,_w), in this image's output coordinate space to the ultimate source image's input coordinate space and returns the result in (_x,_y,_z). All coordinates are defined in this image's orientation. One possible use for this is to find the source image coordinates of a screen location in a zoomed and rotated image. The ilView function, ggggeeeettttLLLLoooocccc(((()))), uses this function to accomplish this task. The overloaded versions provide 2D address mapping, which is sufficient for most applications. Note that the IL does not yet support images with non-identity coordinate mappings in the z dimension. See also mmmmaaaappppFFFFrrrroooommmmSSSSoooouuuurrrrcccceeee(((()))), mmmmaaaappppTTTTooooIIIInnnnppppuuuutttt(((()))) and the ilView man page. mmmmaaaappppXXXXYYYY(((()))) void mapXY(iflOrientation fromOri, int& x, int& y, iflOrientation workOri=iflOrientation(0)) void mapXY(iflOrientation fromOri, float& x, float& y, iflOrientation workOri=iflOrientation(0)) void mapXYSign(iflOrientation fromOri, float& x, float& y, iflOrientation workOri=iflOrientation(0)) The (x,y) pair of values referenced by _x and _y is mapped from orientation _f_r_o_m_O_r_i to the orientation _w_o_r_k_O_r_i. If _w_o_r_k_O_r_i is defaulted, the orientation of the image is used instead. In the _i_l_M_a_p_X_Y_S_i_g_n function, if a flip in the _x or _y dimensions is required to transform between the two orienations, the _x and _y values are negated accordingly. If a transpose is required, the _x and _y values are swapped. oooouuuuttttOOOOffffBBBBoooouuuunnnndddd(((()))) int outOfBound(int x, int y) _p_r_o_t_e_c_t_e_d int outOfBound(int x, int y, int z) _p_r_o_t_e_c_t_e_d Returns TRUE if the specified point is outside of the image. Provided as a convenience for derived classes. PPPPaaaaggggeeee 33335555 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg(((()))) virtual ilStatus qCopyTileCfg(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, ilImage* other, int ox, int oy, int oz, const ilConfig* config=NULL, ilMpManager** pMgr=NULL) This virtual function should be defined by derived classes to queue a request to copy a tile from the _o_t_h_e_r image to this image object. The tile is copied to location _x, _y, _z in this image; the tile size is specified by _n_x, _n_y, _n_z. The source tile is at location _o_x, _o_y, _o_z in the _o_t_h_e_r image. The _c_o_n_f_i_g parameter may be used to specify a channel list and/or offset (the other fields are ignored). If the _o_t_h_e_r image has a different data type or order than this image, then the data is converted as it is copied. If the two image's color models are different, a color converter is chained onto the _o_t_h_e_r image UNLESS a channel list or offset is specified with _c_o_n_f_i_g; the channel re-ordering will be presumed to resolve any color model difference. The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a dependent node. The MP manager for this queued operation will be returned via the _p_M_g_r parameter (if not NULL) and can then used to wait for completion, obtain a status code, and/or abort. For more information on MP synchronization, see the ilMpManager man page. qqqqFFFFiiiillllllllTTTTiiiilllleeee3333DDDD(((()))) virtual ilStatus qFillTile3D(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, const void* data, const ilConfig* config=NULL, const iflTile3Dint* fillMask=NULL, ilMpManager** pMgr=NULL); This virtual function should be defined by derived classes to queue a request to fill a tile at location _x, _y, _z of size _n_x, _n_y _n_z with a constant pixel value, defined by _d_a_t_a. The ilConfig object, _c_o_n_f_i_g, (if not NULL) can specify a data type and order for the fill value as well as a channel list or offset. If _c_o_n_f_i_g specifies an orientation, it is used to map the tile coordinates to the image's orientation. The _f_i_l_l_M_a_s_k (if not NULL) defines a region within the fill area that is not to be filled; it should be specified in the same orientation as the tile. The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a dependent node. The MP manager for this queued operation will be returned via the _p_M_g_r parameter (if not NULL) and can then used to wait for completion, obtain a status code, and/or abort. For more PPPPaaaaggggeeee 33336666 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) information on MP synchronization, see the ilMpManager man page. qqqqFFFFiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB(((()))) virtual ilStatus qFillTileRGB(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, float red, float green, float blue, const iflTile3Dint* fillMask=NULL, iflOrientation orientation=iflOrientation(0), ilMpManager** pMgr=NULL); This virtual function should be defined to queue a fill tile request in a manner similar to qqqqFFFFiiiillllllllTTTTiiiilllleeee3333DDDD(), except that the fill value is specified with _r_e_d, _g_r_e_e_n, _b_l_u_e pixel components. The _o_r_i_e_n_t_a_t_i_o_n (if not zero) is used to map the tile and mask coordinates to the image's orientation. qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(((()))) virtual ilStatus qGetSubTile3D(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, void*& data, int dx, int dy, int dz, int dnx, int dny, int dnz, const ilConfig* config=NULL, ilMpManager** pMgr=NULL); This virtual function should be defined by derived classes to queue a read request for an arbitrary rectangular tile of data. The data should be returned in the buffer pointed to by _d_a_t_a. The source tile origin is specified by _x, _y, _z, and the tile size is specified by _n_x, _n_y, _n_z. The destination buffer origin _d_x, _d_y, _d_z and size _d_n_x, _d_n_y, _d_n_z may be different from the source tile; in this case, the source tile will be properly integrated into the destination buffer. The ilConfig object, _c_o_n_f_i_g, may be used to specify the data type, order, number of channels and channel order desired for the buffer. If _c_o_n_f_i_g is NULL (the default) then no conversion is performed. Otherwise, if the configuration specifies attributes different from those of the image, then the data is converted as it is copied into the buffer. The configuration may also include a channel list; it should have as many entries as there are channels in the buffer. A -1 means no data is written for that channel. For example, if this image has four channels and the number of channels in _c_o_n_f_i_g is 3 and the channel list is (1, -1, 3), then channels 1 and 3 of this image are read into channels 0 and 2 of the buffer in the data type and order specified in _c_o_n_f_i_g. Channel 1 in the buffer remains unchanged. See also the ilConfig man page. PPPPaaaaggggeeee 33337777 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a dependent node. The MP manager for this queued operation will be returned via the _p_M_g_r parameter (if not NULL) and can then used to wait for completion, obtain a status code, and/or abort. For more information on MP synchronization, see the ilMpManager man page. qqqqGGGGeeeettttTTTTiiiilllleeee3333DDDD(((()))) ilStatus qGetTile3D(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, void*& data, const ilConfig* config=NULL, ilMpManager** pMgr=NULL) This function calls qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() with the destination tile position and size equal to that of the source tile. qqqqLLLLoooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt(((()))) virtual ilStatus qLockPageSet(ilMpNode* parent, ilLockRequest* set, int mode=ilLMread, int count=1, ilMpManager** pMgr=NULL, ilCallback* perPageCb=NULL) This virtual function should be defined by derived classes to queue a request to lock pages in memory. The _s_e_t parameter is a pointer to an array of _c_o_u_n_t ilLockRequest structures: _s_t_r_u_c_t _i_l_L_o_c_k_R_e_q_u_e_s_t : _p_u_b_l_i_c _i_l_X_Y_Z_C_S_i_n_t { _i_l_S_t_a_t_u_s _s_t_a_t_u_s; _i_l_P_a_g_e* _p_a_g_e; _v_o_i_d _i_n_i_t(_i_n_t _X, _i_n_t _Y, _i_n_t _Z, _i_n_t _C); }; Each ilLockRequest structure specifies a request for a pointer to the page containing the pixel _X, _Y, _Z, _C. After the lock request completes each of the _s_t_a_t_u_s codes will be filled in and _p_a_g_e will point at the page containing the requested pixel. If _s_t_a_t_u_s is not ilOKAY or _X, _Y, _Z, _C references an invalid page, _p_a_g_e will be NULL. The _m_o_d_e parameter is a logical OR of the following mode values: _n_a_m_e _b_i_t_s _m_e_a_n_i_n_g _________________________________________________________ ilLMpriority 0x0ff cache priority: 0(low) -> 7(high) ilLMread 0x100 read access ilLMwrite 0x200 write access (mark dirty) ilLMseek 0x400 load into cache without locking PPPPaaaaggggeeee 33338888 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ilLMfail 0x800 succeed only if resident ilLMforceMP 0x1000 force MP manager to be created If _m_o_d_e includes ilLMfail, then the status will be set to ilNOTRESIDENT if the page is not resident in cache, instead of forcing the page to be made resident. See the header file <_i_l/_i_l_E_r_r_o_r._h> for other status values. In the default implementation in the ilImage base class, copies of pages are returned in locally allocated memory. Subsequent calls to lock the same pages will return new copies. This default implementation ignores the _m_o_d_e parameter. Some derived classes provide more interesting implementations which manage shared cache storage, etc. One example is ilMemCacheImg. The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a dependent node. The MP manager for this queued operation will be returned via the _p_M_g_r parameter (if not NULL) and can then used to wait for completion, obtain a status code, and/or abort. For more information on MP synchronization, see the ilMpManager man page. Alternatively (or in addition), an ilPage callback, _p_e_r_P_a_g_e_C_b, can be specified; if not NULL, it will be invoked as each page is locked (see the ilPage man page for info on how to declare a paging callback). qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(((()))) virtual ilStatus qSetSubTile3D(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, const void* data, int dx, int dy, int dz, int dnx, int dny, int dnz, const ilConfig* config=NULL, ilMpManager** pMgr=NULL) This virtual function should be defined by derived classes to queue a request to write an arbitrary tile of data taken from the buffer pointed to by _d_a_t_a. The image tile origin is specified by _x, _y, _z, and the tile size is specified by _n_x, _n_y, _n_z. The source buffer's origin _d_x, _d_y, _d_z and size _d_n_x, _d_n_y, _d_n_z may be different from the image tile; in this case, only the intersection of the two tiles is copied. The ilConfig object, _c_o_n_f_i_g, may be used to specify the data type, order, color model, number of channels and channel order of the buffer. If _c_o_n_f_i_g is NULL (the default) then no conversion is performed. Otherwise, if the configuration specifies attributes different from those of the image, then the data is converted as it is written to the image. PPPPaaaaggggeeee 33339999 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) The configuration may also include a channel list; it should have as many entries as there are channels in the buffer. A -1 means no data is written for that channel. For example, if this image has four channels and the number of channels in _c_o_n_f_i_g is 3 and the channel list is (1, -1, 3), then channels 1 and 3 of this image are read into channels 0 and 2 of the buffer in the data type and order specified in _c_o_n_f_i_g. Channel 1 in the buffer remains unchanged. See also the ilConfig man page. The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a dependent node. The MP manager for this queued operation will be returned via the _p_M_g_r parameter (if not NULL) and can then used to wait for completion, obtain a status code, and/or abort. For more information on MP synchronization, see the ilMpManager man page. This is a virtual function and should be defined by derived classes. See also sssseeeettttTTTTiiiilllleeee(), and ggggeeeettttCCCCoooonnnnffffiiiigggg(). qqqqSSSSeeeettttTTTTiiiilllleeee3333DDDD(((()))) ilStatus qSetTile3D(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, void* data, const ilConfig* config=NULL, ilMpManager** pMgr=NULL) This function is a call-through to qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() with the buffer tile position and size equal to the image tile position and size. rrrreeeemmmmoooovvvveeeeIIIInnnnppppuuuutttt(((()))) ilStatus removeInput(int idx = 0) Removes the image at index _i_d_x from the input (parent) list. If successful, ilOKAY is returned. The default index is 0. sssseeeettttCCCCoooolllloooorrrrmmmmaaaapppp(((()))) ilStatus setColormap(const iflColormap &cmap) Sets the image's color map to the given iflColormap. If successful, ilOKAY is returned. See also ggggeeeettttCCCCoooolllloooorrrrmmmmaaaapppp() and iflColormap. sssseeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(((()))) ilStatus setColorModel(iflColorModel c) Sets the image's color model to the enumerated type, _i_f_l_C_o_l_o_r_M_o_d_e_l, specified by _c. If successful, ilOKAY is returned. See also ggggeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(). PPPPaaaaggggeeee 44440000 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) sssseeeettttCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn(((()))) ilStatus setCompression(iflCompression c) Sets the image's compression scheme to the enumerated type, _i_f_l_C_o_m_p_r_e_s_s_i_o_n, specified by _c. If successful, ilOKAY is returned. See also ggggeeeettttCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn(). sssseeeettttDDDDiiiissssppppllllaaaayyyyCCCCaaaacccchhhheeeeEEEEnnnnaaaabbbblllleeee(((()))) void setDisplayCacheEnable(int en=TRUE) _p_r_o_t_e_c_t_e_d If the enable is _T_R_U_E and this image is not hardware accelerated, then an iiiillllNNNNooooppppIIIImmmmgggg is automatically chained onto the image when it is displayed in order to cache the image data for improved interactive display. You shouldn't set this enable for images derived from iiiillllMMMMeeeemmmmCCCCaaaacccchhhheeeeIIIImmmmgggg because such objects have cache's of their own. It does make sense to set it for an uncached, unaccelerated image such as iiiillllJJJJooooiiiinnnnIIIImmmmgggg. sssseeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((()))) ilStatus setOrientation(iflOrientation spc) Sets the image's orientation to the enumerated type, _i_f_l_O_r_i_e_n_t_a_t_i_o_n, specified by _s_p_c. This parameter determines whether the image origin is, for example, the upper left corner or the lower left corner. See also ggggeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(). sssseeeettttCCCCssssiiiizzzzeeee(((()))) ilStatus setCsize(int nc) ilStatus setNumChans(int nc) Sets the number of channels in the image. Each pixel has _n_c channels or components. Returns ilOKAY upon successful completion. sssseeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(((()))) ilStatus setDataType(iflDataType dtype) Sets the image data type to the enumerated type, _i_f_l_D_a_t_a_T_y_p_e, specified by _d_t_y_p_e. Returns ilOKAY upon successful completion. PPPPaaaaggggeeee 44441111 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) sssseeeettttFFFFiiiillllllll(((()))) ilStatus setFill(const iflPixel& pixel) Sets the image's fill value data member to the values in _p_i_x_e_l. When ggggeeeettttTTTTiiiilllleeee() or ccccooooppppyyyyTTTTiiiilllleeee() try to access pixels that are beyond the image's edge, those pixels are set to the fill value. The iflPixel type is defined in its header file as consisting of an iflDataType that defines the data type of the image's pixels, an iiiinnnntttt specifying the number of channels of data, and a pointer to the actual pixel data. See also ggggeeeettttFFFFiiiillllllll() and cccclllliiiippppTTTTiiiilllleeee(). sssseeeettttFFFFiiiillllllllRRRRGGGGBBBB(((()))) ilStatus setFillRGB(float red, float green, float blue) Sets the image fill value to a pixel whose elements will be interpreted as the color indicated by _r_e_d, _g_r_e_e_n and _b_l_u_e. The values for the color triplet should be in the range from zero to one. See also sssseeeettttFFFFiiiillllllll(). sssseeeettttFFFFiiiillllllllVVVVaaaalllluuuueeee(((()))) ilStatus setFillValue(double val, int c=0) Sets the image fill value for channel _c to _v_a_l. See also sssseeeettttFFFFiiiillllllll(). sssseeeettttHHHHwwwwEEEEnnnnaaaabbbblllleeee(((()))) void setHwEnable(ilHwAccelEnable enable) This function enables or disables hardware acceleration for this image object. If acceleration is successfully enabled, the image will derive a performance improvement by using the installed graphics hardware of the system. See the man page for _i_l_H_w_A_c_c_e_l_e_r_a_t_e. sssseeeettttIIIInnnnppppuuuutttt(((()))) ilStatus setInput(ilImage* inimg, int idx = 0) Inserts the image _i_n_i_m_g into the input (parent) list at index _i_d_x. By default, the image is inserted at index 0. Returns ilOKAY upon successful completion. See also aaaaddddddddIIIInnnnppppuuuutttt(). PPPPaaaaggggeeee 44442222 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) sssseeeettttMMMMaaaaxxxxCCCCoooolllloooorrrrmmmmaaaappppLLLLeeeevvvveeeellllssss(((()))) void setMaxColormapLevels(int maxLevels) This function sets the maximum number of color levels for optimal color map generation for this image object. This value may be used to generate a color map when displaying the image if an explicit color map is not supplied. sssseeeettttMMMMaaaaxxxxVVVVaaaalllluuuueeee(((()))) ilStatus setMaxValue(double val) Sets the maximum allowable value for all channels. sssseeeettttMMMMiiiinnnnVVVVaaaalllluuuueeee(((()))) ilStatus setMinValue(double val) Sets the minimum allowable value for all channels. sssseeeettttNNNNuuuummmmIIIInnnnppppuuuuttttssss(((()))) void setNumInputs(int num) _p_r_o_t_e_c_t_e_d Sets the maximum number of inputs allowed by this image to _n_u_m. The maximum number of inputs is checked by aaaaddddddddIIIInnnnppppuuuutttt() and by sssseeeettttIIIInnnnppppuuuutttt(). sssseeeettttOOOOrrrrddddeeeerrrr(((()))) ilStatus setOrder(iflOrder order) Sets the pixel channel order of this image to _o_r_d_e_r. The enumerated type, _i_f_l_O_r_d_e_r can be one of _i_l_I_n_t_e_r_l_e_a_v_e_d, _i_l_S_e_q_u_e_n_t_i_a_l or _i_l_S_e_p_a_r_a_t_e. Returns ilOKAY upon successful completion. See also ggggeeeettttOOOOrrrrddddeeeerrrr(). sssseeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((()))) ilStatus setPageBorder(const iflXYZint& border) ilStatus setPageBorder(int nx, int ny, int nz=0) Sets the current page border size to _n_x, _n_y, _n_z. PPPPaaaaggggeeee 44443333 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) sssseeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(((()))) ilStatus setPageSize(const iflSize& pageSize) ilStatus setPageSize(int nx, int ny, int nz, int nc) ilStatus setPageSize(int nx, int ny) ilStatus setPageSizeZ(int nz) ilStatus setPageSizeC(int nc) Functions to set the page size. For each of the versions of this function, the x size is set to _n_x, the y size is set to _n_y, the z size is set to _n_z, and the number of channels is set to _n_c. See also ilCacheImg. If the number of channels is set to 0 (or is not set), it is then up to the derived classes to set the actual _c dimension of the page. One might, in a derived class, check the order of the data and then set the _c dimension to 1 for _i_f_l_S_e_p_a_r_a_t_e data or to the number of image channels for _i_f_l_I_n_t_e_r_l_e_a_v_e_d or _i_f_l_S_e_q_u_e_n_t_i_a_l data. sssseeeettttPPPPiiiixxxxeeeellll(((()))) ilStatus setPixel(int x, int y, iflPixel& pix) This function is the 2-D version of sssseeeettttPPPPiiiixxxxeeeellll3333DDDD(). It calls sssseeeettttPPPPiiiixxxxeeeellll3333DDDD() with _z set to 0. See also sssseeeettttPPPPiiiixxxxeeeellll3333DDDD(). sssseeeettttPPPPiiiixxxxeeeellll3333DDDD(((()))) ilStatus setPixel3D(int x, int y, int z, iflPixel& pix) Writes the iflPixel specified by _p_i_x to the location specified by _x, _y, and _z. An iflPixel specifies the channel data type, the number of channels per pixel and a pointer to the pixel data. This function calls sssseeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() with the tile size _n_x, _n_y and _n_z set to 1. Returns ilOKAY upon successful completion. See also ggggeeeettttPPPPiiiixxxxeeeellll3333DDDD() and sssseeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(), sssseeeettttPPPPiiiixxxxeeeellll(). sssseeeettttPPPPrrrriiiioooorrrriiiittttyyyy(((()))) void setPriority(int pri) This function sets the cache priority of this image, the default is zero (the lowest priority). By setting a larger value (up to the maximum of 7), the likelihood that this image's pages will stay in the global cache is increased. PPPPaaaaggggeeee 44444444 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) sssseeeettttSSSSccccaaaalllleeeeMMMMiiiinnnnMMMMaaaaxxxx(((()))) ilStatus setScaleMinMax(double min, double max) Sets the scale minimum and maximum to _m_i_n and _m_a_x. The scale minimum and maximum are used during color conversion and display. By default, the scale minimum and maximum track the image minimum and maximum values. sssseeeettttSSSSccccaaaalllleeeeTTTTyyyyppppeeee(((()))) ilStatus setScaleType(iflDataType type=iflDataType(0)) Sets the scale minimum and maximum to the minimum and maximum values of the data type passed in _t_y_p_e. If _t_y_p_e is defaulted, then this object's data type is used. The scale minimum and maximum are used during color conversion. By default, the scale minimum and maximum track the image minimum and maximum values. sssseeeettttSSSSiiiizzzzeeee(((()))) ilStatus setSize(const iflSize &size) ilStatus setSize(int nx, int ny) Sets the image size to the value referenced by _s_i_z_e. The second versions allows just the _x and _y size to be set. Returns ilOKAY upon successful completion. See also ggggeeeettttSSSSiiiizzzzeeee(). sssseeeettttTTTTiiiilllleeee(((()))) ilStatus setTile(int x, int y, int nx, int ny, const void* data, const ilConfig* config=NULL) ilStatus setTile3D(int x, int y, int z, int nx, int ny, int nz, const void* data, const ilConfig* config=NULL) ilStatus setSubTile(int x, int y, int nx, int ny, const void* data, int dx, int dy, int dnx, int dny, const ilConfig* config=NULL) ilStatus setSubTile3D(int x, int y, int z, int nx, int ny, int nz, const void* data, int dx, int dy, int dz, int dnx, int dny, int dnz, const ilConfig* config=NULL) These functions queue a tile write request with qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and wait for it to complete. The source tile origin is specified by _x, _y, _z, and the tile size is specified by _n_x, _n_y, _n_z. The 2D versions, sssseeeettttTTTTiiiilllleeee() and sssseeeettttSSSSuuuubbbbTTTTiiiilllleeee(), call the corresponding 3D routine with _z set to zero and _n_z set to one. PPPPaaaaggggeeee 44445555 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) sssseeeettttTTTTiiiilllleeee() and sssseeeettttTTTTiiiilllleeee3333DDDD() assume that the source buffer has the same offset and size as the request; sssseeeettttSSSSuuuubbbbTTTTiiiilllleeee() and sssseeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() allow the source buffer to have a different position and size, specified by _d_x, _d_y, _d_n_x, and _d_n_y (and _d_z and _d_n_z for the 3D version.) See also qqqqSSSSeeeettttTTTTiiiilllleeee3333DDDD(), qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and iiiillllGGGGeeeettttCCCCoooonnnnffffiiiigggg(). sssseeeettttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnnttttFFFFuuuunnnnccccttttiiiioooonnnn(((()))) void setTileRequirementFunction(ilTileRequirementFuncPtr func) _p_r_o_t_e_c_t_e_d Set a function pointer that is called to override the default implementation of ggggeeeettttIIIInnnnppppuuuuttttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnntttt() in a derived class. This method should be called in the derived-class' constructor. This really should be done as a virtual method, but it has been done this way in order to maintain binary compatibility with IL 3.1.1. In order to override the default ggggeeeettttIIIInnnnppppuuuuttttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnntttt() in a derived class, you should add a protected method such as ilImageTile* getMyInputTileRequirement(const iflTile3Dint& tile, int c, int nc, int* chans, int& inputTileCount); and then call setTileRequirementFunction((ilTileRequirementFuncPtr) &MyImage::getMyInputTileRequirement); in the constructor for MMMMyyyyIIIImmmmaaaaggggeeee. sssseeeettttWWWWrrrriiiittttaaaabbbblllleeee(((()))) void setWritable(int enable=TRUE) _p_r_o_t_e_c_t_e_d This function will enable or disable write access to this image. If _e_n_a_b_l_e is TRUE, then the image will be writable; if FALSE, then the image is not writable. sssseeeettttXXXXssssiiiizzzzeeee(((()))) ilStatus setXsize(int nx) Sets the size of the image in the _x-dimension, measured in pixels. Returns ilOKAY upon successful completion. See special notes on IL image memory order conventions and orientations in the description PPPPaaaaggggeeee 44446666 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) of getXsize(). sssseeeettttYYYYssssiiiizzzzeeee(((()))) ilStatus setYsize(int ny) Sets the size of the image in the _y-dimension, measured in pixels. Returns ilOKAY upon successful completion. sssseeeettttZZZZssssiiiizzzzeeee(((()))) ilStatus setZsize(int nz) Sets the size of the image in the _z-dimension, measured in pixels. Returns ilOKAY upon successful completion. uuuunnnnlllloooocccckkkkPPPPaaaaggggeeee(((()))) void unlockPage(ilPage *page) This is the single page version of unlockPageSet(). It releases a page previously ``locked'' by lockPage(). uuuunnnnlllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt(((()))) virtual void unlockPageSet(ilLockRequest* set, int count=1) This function releases a set of pages previously ``locked'' with lockPageSet(). The _s_e_t parameter is a pointer to an array of _c_o_u_n_t ilLockRequest structures. IIIINNNNHHHHEEEERRRRIIIITTTTEEEEDDDD MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllLLLLiiiinnnnkkkk addResetCallback(), alterAction(), anyAltered(), clearAllowed(), clearSet(), clearStatus(), deleteRelated(), disableAltered(), dumpChain(), getClassPropSet(), getDescription(), getDirectParent(), getDisabledIndex(), getFloatProp(), getGenerationID(), getIntProp(), getMaxIndex(), getMinIndex(), getNumChildren(), getNumParents(), getParent(), getProp(), getProp(), getPropSet(), getPtrProp(), getRelatedChild(), getRelatedDelete(), getRelatedType(), getStatus(), hasResetCallbacks(), ilGetClassPropSet(), inProgress(), isAllowed(), isAltered(), isEnabled(), isRelated(), isSet(), markSet(), mpUnlock(), neverReset(), newRelatedType(), removeParent(), removeProp(), removeResetCallback(), reset(), resetAltered(), resetCheck(), setAllowed(), setAltered(), setDescription(), setDisabledIndex(), setEnabled(), setParent(), setProp(), setPropAltered(), setRelatedDelete(), setRelatedType(), setStatus(), stopWatching(), unalterable(), watch(), watchNotify() PPPPaaaaggggeeee 44447777 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) SSSSEEEEEEEE AAAALLLLSSSSOOOO ilCacheImg, ilDisplayImg, ilFileImg, iflColormap, ilMemoryImg, ilOpImg, ilSubImg, _i_l/_i_l_I_m_a_g_e._h, _i_f_l/_i_f_l_D_a_t_a_T_y_p_e_s._h Please refer to the _I_m_a_g_e_V_i_s_i_o_n _L_i_b_r_a_r_y _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e for a full description of overall concepts and architecture. NNNNOOOOTTTTEEEESSSS Although the ilImage class contains no pure virtual functions, it should only be used to derive new classes, never directly created as an object. However, a pointer to an ilImage can be declared in order to support polymorphism. PPPPaaaaggggeeee 44448888